{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logical and\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 -1 0 -1]\n",
      "epoch 0 sample 2  [0 2 -1 1 0 -1 -1]\n",
      "epoch 0 sample 3  [0 1 -2 0 1 1 1]\n",
      "epoch 1 sample 0  [1 2 -1 0 0 0 0]\n",
      "epoch 1 sample 1  [1 2 -1 0 0 0 0]\n",
      "epoch 1 sample 2  [1 2 -1 1 0 -1 -1]\n",
      "epoch 1 sample 3  [1 1 -2 0 1 1 1]\n",
      "epoch 2 sample 0  [2 2 -1 0 0 0 0]\n",
      "epoch 2 sample 1  [2 2 -1 1 -1 0 -1]\n",
      "epoch 2 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 2 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 3 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 3 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 4 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 4 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 5 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 5 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 6 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 6 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 7 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 7 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 8 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 8 sample 3  [1 2 -2 1 0 0 0]\n",
      "epoch 9 sample 0  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 1  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 2  [1 2 -2 0 0 0 0]\n",
      "epoch 9 sample 3  [1 2 -2 1 0 0 0]\n",
      "logical or\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 1 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 1 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 2 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 2 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 3 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 3 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 4 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 4 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 5 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 5 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 6 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 6 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 7 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 7 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 8 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 8 sample 3  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 9 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 9 sample 3  [1 2 0 1 0 0 0]\n",
      "logical xor\n",
      "epoch 0 sample 0  [1 2 0 0 0 0 0]\n",
      "epoch 0 sample 1  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 2  [1 2 0 1 0 0 0]\n",
      "epoch 0 sample 3  [1 2 0 1 -1 -1 -1]\n",
      "epoch 1 sample 0  [0 1 -1 0 0 0 0]\n",
      "epoch 1 sample 1  [0 1 -1 0 1 0 1]\n",
      "epoch 1 sample 2  [1 1 0 1 0 0 0]\n",
      "epoch 1 sample 3  [1 1 0 1 -1 -1 -1]\n",
      "epoch 2 sample 0  [0 0 -1 0 0 0 0]\n",
      "epoch 2 sample 1  [0 0 -1 0 1 0 1]\n",
      "epoch 2 sample 2  [1 0 0 0 0 1 1]\n",
      "epoch 2 sample 3  [1 1 1 1 -1 -1 -1]\n",
      "epoch 3 sample 0  [0 0 0 0 0 0 0]\n",
      "epoch 3 sample 1  [0 0 0 0 1 0 1]\n",
      "epoch 3 sample 2  [1 0 1 1 0 0 0]\n",
      "epoch 3 sample 3  [1 0 1 1 -1 -1 -1]\n",
      "epoch 4 sample 0  [0 -1 0 0 0 0 0]\n",
      "epoch 4 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 4 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 4 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 5 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 5 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 5 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 5 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 6 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 6 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 6 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 6 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 7 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 7 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 7 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 7 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 8 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 8 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 8 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 8 sample 3  [1 0 2 1 -1 -1 -1]\n",
      "epoch 9 sample 0  [0 -1 1 1 0 0 -1]\n",
      "epoch 9 sample 1  [0 -1 0 0 1 0 1]\n",
      "epoch 9 sample 2  [1 -1 1 0 0 1 1]\n",
      "epoch 9 sample 3  [1 0 2 1 -1 -1 -1]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "samples_and = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 0],\n",
    "    [0, 1, 0],\n",
    "    [1, 1, 1],\n",
    "]\n",
    "\n",
    "\n",
    "samples_or = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 1],\n",
    "]\n",
    "\n",
    "\n",
    "samples_xor = [\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 0],\n",
    "]\n",
    "\n",
    "\n",
    "\n",
    "def perceptron(samples):\n",
    "    w = np.array([1, 2])\n",
    "    b = 0\n",
    "    a = 1\n",
    "\n",
    "    for i in range(10):\n",
    "        for j in range(4):\n",
    "            x = np.array(samples[j][:2])\n",
    "            y = 1 if np.dot(w, x) + b > 0 else 0\n",
    "            d = np.array(samples[j][2])\n",
    "\n",
    "            delta_b = a*(d-y)\n",
    "            delta_w = a*(d-y)*x\n",
    "\n",
    "            print('epoch {} sample {}  [{} {} {} {} {} {} {}]'.format(\n",
    "                i, j, w[0], w[1], b, y, delta_w[0], delta_w[1], delta_b\n",
    "            ))\n",
    "            w = w + delta_w\n",
    "            b = b + delta_b\n",
    "\n",
    "\n",
    "if __name__ == '__main__':\n",
    "    print('logical and')\n",
    "    perceptron(samples_and)\n",
    "    print('logical or')\n",
    "    perceptron(samples_or)\n",
    "    print('logical xor')\n",
    "    perceptron(samples_xor)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## logical and\n",
    "### 可以看到，最终在epoch2的样本2，3上，参数就已经停止更新了，接下来参数都完全没有更新。最终得到的参数为w1=1,w2=2,b=−2\n",
    "## logical or\n",
    "### 可以得到w1=1,w2=2,b=0\n",
    "\n",
    "### 事实上比较巧合，我们初始化使用的参数，正好满足这里的数据。\n",
    "\n",
    "## logical xor\n",
    "### 感知器算法无法得出满足这组数据的参数，这是因为异或问题属于线性不可分问题，单个感知器算法只能解决线性可分问题。"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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BAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIECBAgQIAAAQLLEhBQlsWlMAECBAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIECBAgQIAAAQLLEhBQlsWlMAECBAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIECBAgQIAAAQLLEhBQlsWlMAECBAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIECBAgQIAAAQLLEhBQlsWlMAECBAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIECBAgQIAAAQLLEhBQlsWlMAECBAgQIECAAAECoxQQUEapa9kECBAgQIAAAQIECCxLQEBZFpfCBAgQIECAAAECBAiMUkBAGaWuZRMgQIAAAQIECBAgsCwBAWVZXAoTIECAAAECBAgQIDBKAQFllLqWTYAAAQIECBAgQIDAsgQElGVxKUyAAAECBAgQIECAwCgFBJRR6lo2AQIE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MDOvb92ypY689Vb98pe/7E4jnDknGdaVa5/04eZHVKvIayQgoLxGG7PlR0nIyC1fPLnnCyZfQDk60k+C64NI/9hy/dRFgAABAgQIrJxA2gYZRZFekbQR0hZI70qe9yEll51IOElvyyeffNIN6fr000+7YV2ZdN+/b+U+hZpXSkBAWSn516xeIeQ126A+DgECBAgQeEmBBJLMHckE95wiOAcw81rmpZw8ebIezsx0pyjOtU1+85vf1C9++ct6++23u2FdwslL4q/xtwsoa3wDWn0CBAgQIECAwGoV6ENKzsyVgJKelVzHJBfunnkaUBJefvazn3WvZVhXRmTkwKfbmysgoLy5294nJ0CAAAECBAiMXCChpD99cHpGcqavzDHJPJSElQwDyzVOMq/VnJORb441UYGAsiY2k5UkQIAAAQIECKxdgYSU/iKLCSWZQJ8T7KS3JK9nvkrCS3pc3AgIKPYBAgQIECBAgACBkQpkyFZCSn+pgfSWZMhX/3qCiWFdI90Ea2rhAsqa2lxWlgABAgQIECCwdgUSRPSSrN3t12rN9aO1klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABGIsSgQAAIABJREFUAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQQEBZZBIAQIECBAgQIAAAQIEWgkIKK2k1UOAAAECBAgQIECAwKCAgDJIpAABAgQIECBAgAABAq0EBJRW0uohQIAAAQIECBAgQGBQQEAZJFKAAAECBAgQIECAAIFWAgJKK2n1ECBAgAABAgQIECAwKCCgDBIpQIAAAQIECBAgQIBAKwEBpZW0eggQIECAAAECBAgQGBQQUAaJFCBAgAABAgQIECBAoJWAgNJKWj0ECBAgQIAAAQIECAwKCCiDRAoQIECAAAECBAgQINBKQEBpJa0eAgQIECBAgAABAgQGBQSUQSIFCBAgQIAAAQIECBBoJSCgtJJWDwECBAgQIECAAAECgwICyiCRAgQIECBAgAABAgQItBIQUFpJq4cAAQIECBAgQIAAgUEBAWWQSAECBAgQIECAAAECBFoJCCitpNVDgAABAgQIECBAgMCggIAySKQAAQIECBAgQIAAAQKtBASUVtLqIUCAAAECBAgQIEBgUEBAGSRSgAABAgQIECBAgACBVgICSitp9RAgQIAAAQIECBAgMCggoAwSKUCAAAECBAgQIECAQCsBAaWVtHoIECBAgAABAgQIEBgUEFAGiRQgQIAAAQIECBAgQKCVgIDSSlo9BAgQIECAAAECBAgMCggog0QKECBAgAABAgQIECDQSkBAaSWtHgIECBAgQIAAAQIEBgUElEEiBQgQIECAAAECBAgQaCUgoLSSVg8BAgQIECBAgAABAoMCAsogkQIECBAgQIAAAQIECLQSEFBaSauHAAECBAgQIECAAIFBAQFlkEgBAgQIECBAgAABAgRaCQgoraTVQ4AAAQIECBAgQIDAoICAMkikAAECBAgQIECAAAECrQQElFbS6iFAgAABAgQIECBAYFBAQBkkUoAAAQIECBAgQIAAgVYCAkorafUQIECAAAECBAgQIDAoIKAMEilAgAABAgQIECBAgEArAQGllbR6CBAgQIAAAQIECBAYFBBQBokUIECAAAECBAgQIECglYCA0kpaPQQIECBAgAABAgQIDAoIKINEChAgQIAAAQIECBAg0EpAQGklrR4CBAgQIECAAAECBAYFBJRBIgUIECBAgAABAgQIEGglIKC0klYPAQIECBAgQIAAAQKDAgLKIJECBAgQIECAAAECBAi0EhBQWkmrhwABAgQIECBAgACBQYF1gyUUILAMgcXFxWelx8bGnj33hAABAgQIECBAgMCPERBQfoySMj9KYGFhoebn57t73jAxMdHdE1SElR9FqBABAgQIECBA4I0XEFDe+F3g5QHSa5Jg8vDhw7p7927dv3+/W+imTZtqy5YttXHjxlq3bp2Q8vLUlkCAAAECBAgQeO0FBJTXfhOP9gMmnDx69KgePHhQV69erbNnz9aFCxcqr+/bt68OHz5c+/fv74LK+vXrhZTRbg5LJ0CAAAECBAiseQEBZc1vwpX7AAkhc3NzXa/JpUuX6ptvvql//OMf9d2JE/V4fr6OHDlSP//5z+vjjz+uQ4cO1fbt2yshZXzcuRlWbqupmQABAgQIECCwugUElNW9fVbt2mW+SXpO7ty5U+fOnauvvvqyPvvsL/W3v/2tzpw+XY8fP65Tp07V7du3a3Z2tiv71ltv1Y4dO2pyclJIWbVb1ooRIECAAAECBFZWQEBZWf81WXs/rOtJODlbf//7P+rPf/5z/fWvf60T356oGzdu1PzCfN25e7cLJgkrCTOZp3L06NHauXNnTU1NCSlrcutbaQIECBAgsDyBtBuev3dLyJk/n57xsz+hTh6NtFie7+tYWkB5HbfqCD9TH04yGT49J3/729/rj3/8Y33+l8/ru+++qxs3b3TDvrIKN2/e7NYk7+nP7pWel/yckLJhwwZfQiPcVhZNgAABAgRWWiB/93OgMqMp+nt+Xpif79oD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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 如下图所示，为异或逻辑的数据，无法找到一条直线将两类数据完全分割。\n",
    "\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
